/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ventasautomotrices;

import java.sql.ResultSet;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Ari Mendez
 */
public class ControlAdministracion {
    AdminConexion adminc = new AdminConexion();
    public String generarConsultaReporteVentas(String fechainicial, String fechafinal, String limite, String id){
        String consulta="select f.idFactura, f.Fecha, f.Nit, c.Nombre, c.Apellido, f.Total"+
                " from Factura f, Empleado e, Cliente c";
        String wheres=" where f.Vendedor_idVendedor = e.idVendedor"+
                " and f.Cliente_idCliente = c.idCliente";
        if((fechainicial!=null)&&(fechafinal!=null)){
            wheres+=" and f.Fecha_f between '"+fechainicial+"' and '"+fechafinal+"'";
        }
        else if(fechainicial!=null){
            wheres+=" and f.Fecha_f > '"+fechainicial+"'";
        }
        else if(fechafinal!=null){
            wheres+=" and f.Fecha_f < '"+fechafinal+"'";
        }
        if(limite!=null){
            wheres+=" and f.Total < "+limite;
        }
        if(id!=null){
            wheres+=" and f.Vendedor_idVendedor = "+id;
        }
        System.out.println("consulta:--- " +consulta+wheres);
        return consulta+wheres;
    }
    
    public String generarConsultaReporteEmpleados(String fechainicial, String fechafinal, String mes, String id){
        String consulta="select e.idVendedor, e.Nombre, e.Apellido, e.Tipo, s.idSueldo, s.Fecha, s.Mes, s.Monto"+
                " from Empleado e, Sueldo s";
        String wheres=" where e.idVendedor = s.idVendedor";
        if((fechainicial!=null)&&(fechafinal!=null)){
            wheres+=" and s.Fecha between '"+fechainicial+"' and '"+fechafinal+"'";
        }
        else if(fechainicial!=null){
            wheres+=" and s.Fecha > '"+fechainicial+"'";
        }
        else if(fechafinal!=null){
            wheres+=" and s.Fecha < '"+fechafinal+"'";
        }
        if(mes!=null){
            wheres+=" and s.Mes = '"+mes+"'";
        }
        if(id!=null){
            wheres+=" and e.idVendedor = "+id;
        }
        return consulta+wheres;
    }
    
    public DefaultTableModel generarReporteVentas(String fechainicial, String fechafinal, String limite, String id){
        DefaultTableModel reporte = new DefaultTableModel();
        String consulta= generarConsultaReporteVentas(fechainicial,fechafinal,limite,id);
        try{
            adminc.abrirConexionBDD();
            ResultSet rs=adminc.consulta(consulta);
            int i=0,j=1;
            int limite_c=rs.getMetaData().getColumnCount();
            
        reporte.setColumnIdentifiers(new String[]{"Id Venta","Fecha de Venta","Nit","Nombre Cliente","Apellido Cliente","Total"});
            reporte.setColumnCount(limite_c);
            int limite_r=0;
            while(rs.next()){
                limite_r++;
                reporte.setRowCount(limite_r);
                for(j=1;j<limite_c;j++){
                    reporte.setValueAt(rs.getString(j),i,j);
                }
                i++;
            }
            adminc.cerrarConexionBDD();
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
        return reporte;
    }
    
    public DefaultTableModel generarReporteEmpleados(String fechainicial, String fechafinal, String mes, String id){
        DefaultTableModel reporte = new DefaultTableModel();
        String consulta=generarConsultaReporteEmpleados(fechainicial, fechafinal, mes, id);
        try{
            adminc.abrirConexionBDD();
            ResultSet rs=adminc.consulta(consulta);
            int i=0,j=1;
            int limite_c=rs.getMetaData().getColumnCount();
            reporte.setColumnCount(limite_c);
            reporte.setColumnIdentifiers(new String[]{"Id Empleado","Nombre Empleado","Apellido Empleado","Tipo","Id Sueldo","Fecha", "Mes pagado","Monto"});
            int limite_r=0;
            while(rs.next()){
                limite_r++;
                reporte.setRowCount(limite_r);
                for(j=1;j<limite_c;j++){
                    reporte.setValueAt(rs.getString(j), i, j);
                }
                i++;
            }
            adminc.cerrarConexionBDD();
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return reporte;
    }
}
